Web tracking solutions can generally be separated into solutions loaded into a customer's server, for example, packet “sniffing” and IIS log file analysis software, and solutions that attempt to track page level activity and which take the form of code inserted on a page, third party Web “cookies” or software applications.
Various countries, corporations and Internet Service Providers block, censor or filter communications transmitted between two or more nodes. These communications can occur via Internet, Extranet, Intranet or any other communication path that allows two nodes to communicate with one another. The type of communication is further independent of communication path and includes, but is not limited to, client/server, peer-to-peer and mainframe architectures. All types of communications, including but not limited to wireless, cellular, wired, optical and satellite communications may be subject to censorship. Moreover various modes of communication including, but not limited to, client-server, mainframe, distributed and peer-to-peer, are subject to censorship.
For example, a user may subscribe to an Internet sports package to watch sporting events over a network. The user can request and watch so-called out of market games, but the games are often censored (referred to as “blacked out”) when the team is playing locally and the televised version of the game is available on local free or pay television channels. The distributor of the content identifies the source of the content request and denies the request when the source is within the blackout areas.
FIG. 1 shows a system including an Intermediate Node 200 utilized to send and receive requests for Target Content 300. Intermediate Nodes 200, for example proxy servers, were created in part to overcome censorship. Intermediate Nodes 200 come in a variety of configurations, capabilities, uses and placement with a requirement that, at some point, they respond to a request for Target Content 300 from a Requesting Node 100. Caching aside, the Node Request 400 for Target Content 300 is not targeted at information typically stored locally by the Intermediate Node 200. Rather, the Node Request 400 is focused on information typically stored on yet another logical node, referred to herein as a Responding Node 1400, which is physically or logically separate from the Intermediate Node 200. The Target Content 300 can be any content, for example, a service, a file, a connection, a web page, multimedia or any other resource available over a network.
As another example, a user living in Los Angeles, Calif., representing a possible Requesting Node 100 may normally be blocked from obtaining Target Content 300, e.g., online TV, from a specific website which represents a Responding Node 1400, because that representative website is configured to only serve content to users in the state of New York. Referring to FIG. 1, the user (at Requesting Node 100) may find an Intermediate Node 200 which requests the content from the Responding Node 1400 from within the state of New York. The user sends a request for the content on the target website to the Intermediate Node 200, and the Intermediate Node 200 obtains the content, unrestricted in this example, from the target website and returns the content to the user in Los Angeles.
A given Intermediate Node 200 can cache obtained Target Content 300 and still be considered an Intermediate Node 200 as long as the Requesting Node 100 is attempting to obtain data from the Responding Node 1400. The data may be as simple as a low level communications request to check if a target server exists, or the data may be as complex as is supported on the communication path used and by the type of communications selected.
Nodes are logical constructs that can be physically implemented as a discrete node, as part of other logical nodes or as a system. Requesting Nodes 100, Intermediate Nodes 200 and Responding Nodes 1400 may exist at the same physical location, at completely disparate physical locations or at any combination thereof. Logical nodes may be comprised of different parts of a larger system, be themselves independent systems or be combined together in any combination. For example, a group of networked computers may each utilize a shared access point that is, itself, acting on behalf of a single logical node.
Many Intermediate Nodes 200 do not provide visibility to their data retrieval activities, and this lack of visibility causes difficulties with respect to the conventional use of Intermediate Nodes 200. Many Intermediate Nodes 200 do not provide the services that they purport to offer and, in fact, many nefarious Intermediate Nodes 200 cause more harm than any benefit they may provide. Harmful Intermediate Nodes 200 may download malicious content onto a Requesting Node 100, infiltrate the Requesting Node 100 by utilizing an array of techniques or promote the location of the Requesting Node 100 to dangerous third party groups. The Requesting Node 100 has almost no inherent protection from harmful Intermediate Nodes 200.
Moreover, using an Intermediate Node 200 through any sort of manual effort can be both technically challenging and time consuming for a typical end user. Intermediate Node 200 usage may require entries to be made in special sections of a Requesting Node's 100 operating system, file directory or some other configuration option, either directly or indirectly, and the only manner in which to determine if an Intermediate Node 200 is a viable and functional option is typically to use the Intermediate Node 200 and hope that nothing harmful occurs to the Requesting Node 100. Given the large number of Intermediate Nodes 200 providing intermittent connectivity, an end user may have to attempt to use hundreds or more of Intermediate Nodes 200 prior to finding a somewhat viable option.
Compounding these problems with the conventional use of Intermediate Nodes 200 is that an apparently functional Intermediate Node 200 may hide additional data within the Target Content 300 or perform actions beyond the scope of the Responding Node 1400 that can directly or indirectly affect the Requesting Node 100. While an end user may find an apparently functional Intermediate Node 200, through which requests for Target Content 300 are fulfilled, the end user may have no idea if the Intermediate Node 200 is also downloading malicious content or performing other potentially harmful operations. Furthermore, the end user has no way of knowing from which geographic region a given Intermediate Node 200 is sending out Content Requests 500 to the Responding Node 1400. Overcoming censorship may rely on being perceived as requesting information from a distinct and safe geographic region but, given the conventional options in the market, choosing a specific location for an Intermediate Node 200 is not possible.
It should be noted that an end user is not required. Automated machine-to-machine communications, routing between systems, networking devices and other communication-related efforts may utilize an Intermediate Node 200 in place of an end user. An end user can, therefore, be a human, a computer, a program or some portion of code that produces a Node Request 400. Node Requests 400 may be generated directly or indirectly with or without knowledge of the Intermediate Node 200. Content Requests 500 need not be defined as distinct or separate from the Node Requests 400, because the Content Request 500 can be a routed Node Request 400 or a context-based new message.